TSQL - XML-Daten aus einem VARCHAR geziehlt auslesen
Manchmal ist es notwendig Daten die artfremd in einer Datenbank gespeichert wurden mit Hilfe von SQL on demand gefügig zu machen. Hier hilft es in der Regel die Daten mit CAST() in die richtige Struktur bzw den richtigen Datentypen zu konvertieren und dann die gewünschte Operation durchzuführen. In diesem Beispiel sollen Daten aus einer XML Struktur ausgelesen werden welche aber in einem normalen VARCHAR Feld vorliegen.
SELECT CAST('<x>test</x>' as xml).value('/x[1]', 'varchar(max)')
Im obigen Beispiel wird das XML <a>test</a> zuerst in ein Element vom Typ XML, mit dem Befehl CAST(), umgewandelt. Anschließend wird mit mit der Methode .value und dem XPath ausdruck /x[1] das erste Element mit dem Namen X ausgewählt und zurück gegeben.